package cc.higou.core.tools;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.UUID;

/**
 * 自定义session工具类 主要是分配xingsessionid
 *
 * @author Administrator
 */
public class SessionTool {
    /**
     * 获得自定义sessionID，并在初次访问时，分配maosessionid，并将maosessionid写入到浏览器的cookie中
     *
     * @return
     */
    public static String getSession(HttpServletRequest request, HttpServletResponse response) {
        // 1、从cookie中取出xingsessionid
        Cookie[] cookies = request.getCookies();
        if (cookies != null && cookies.length > 0) {
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals("xingsessionid")) {
                    return cookie.getValue();
                }
            }

        }

        String xingsessionid = UUID.randomUUID().toString().replaceAll("-", "");
        Cookie cookie = new Cookie("xingsessionid", xingsessionid);
        // 设置cookie存活时间，-1表示：浏览器关闭就丢失，0表示立马丢失
        cookie.setMaxAge(-1);
        // 设置路径 如果不设置，端口后面的目录名称（xxx:8080/login）会对cookie存储照成影响
        cookie.setPath("/");
        // 设置二级跨域，由于本次中都是localhost，所有无需设置，但是项目正式上限后需要设置该项
        // cookie.setDomain(".babasport.com");
        // 把cookie写回浏览器客户端
        response.addCookie(cookie);
        return xingsessionid;

    }
}
